package `03-dsl`.dsl03

fun main() {
    /**
     * dsl 特定脚本语言，例如json、gradle、compose
     * dsl格式编写UI，
     * 分析：
     * 1.layout是函数，该函数有一个函数类型的参数，该参数的实现体是layout后的{}内实现
     * 2.button和text也是同layout一样。
     * 3.layout、button、text都是公用函数
     *
     */
    layout<String>{
        button{

        }
        text{

        }
    }
}

inline fun <T>  layout(action: T.()->Unit){

}

inline fun <T> T.button(action: ()->Unit){

}

inline fun <T> T.text(action: ()->Unit){

}